/* 
 * Gneat (http://gneat.org)
 *
 * (C) Copyright 2011 and beyond - Claudio Stella, all rights reserved.
 *
 * This file is part of Gneat.
 *
 * Gneat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License (LGPL)
 * as published by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Gneat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * and the GNU General Public License, for completeness, along with Gneat.  
 * If not, see <http://www.gnu.org/licenses/>.
 */
package org.neatshell.gneat.client.gin;

import org.neatshell.gneat.client.presenter.html.APresenter;
import org.neatshell.gneat.client.presenter.html.BodyPresenter;
import org.neatshell.gneat.client.presenter.html.DivPresenter;
import org.neatshell.gneat.client.presenter.html.FormPresenter;
import org.neatshell.gneat.client.presenter.html.HeadPresenter;
import org.neatshell.gneat.client.presenter.html.HtmlPresenter;
import org.neatshell.gneat.client.presenter.html.IFramePresenter;
import org.neatshell.gneat.client.presenter.html.ImgPresenter;
import org.neatshell.gneat.client.presenter.html.RootBodyPresenter;
import org.neatshell.gneat.client.presenter.html.RootHeadPresenter;
import org.neatshell.gneat.client.presenter.html.RootHtmlPresenter;
import org.neatshell.gneat.client.presenter.html.SpanPresenter;
import org.neatshell.gneat.client.presenter.html.TablePresenter;
import org.neatshell.gneat.client.presenter.html.form.FieldSetPresenter;
import org.neatshell.gneat.client.presenter.html.form.LabelPresenter;
import org.neatshell.gneat.client.presenter.html.form.LegendPresenter;
import org.neatshell.gneat.client.presenter.html.form.SelectPresenter;
import org.neatshell.gneat.client.presenter.html.form.TextareaPresenter;
import org.neatshell.gneat.client.presenter.html.form.button.PushButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.button.ResetButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.button.SubmitButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputCheckboxPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputFilePresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputHiddenPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputImagePresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputPasswordPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputRadioPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputResetPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputSubmitPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputTextPresenter;
import org.neatshell.gneat.client.presenter.html.form.select.OptgroupPresenter;
import org.neatshell.gneat.client.presenter.html.form.select.OptionPresenter;
import org.neatshell.gneat.client.presenter.html.list.LiPresenter;
import org.neatshell.gneat.client.presenter.html.list.UlPresenter;
import org.neatshell.gneat.client.presenter.html.table.CaptionPresenter;
import org.neatshell.gneat.client.presenter.html.table.ColPresenter;
import org.neatshell.gneat.client.presenter.html.table.ColgroupPresenter;
import org.neatshell.gneat.client.presenter.html.table.TbodyPresenter;
import org.neatshell.gneat.client.presenter.html.table.TdPresenter;
import org.neatshell.gneat.client.presenter.html.table.TfootPresenter;
import org.neatshell.gneat.client.presenter.html.table.ThPresenter;
import org.neatshell.gneat.client.presenter.html.table.TheadPresenter;
import org.neatshell.gneat.client.presenter.html.table.TrPresenter;
import org.neatshell.gneat.client.view.live.html.ALiveView;
import org.neatshell.gneat.client.view.live.html.RootBodyLiveView;
import org.neatshell.gneat.client.view.live.html.RootHeadLiveView;
import org.neatshell.gneat.client.view.live.html.RootHtmlLiveView;
import org.neatshell.gneat.client.view.live.html.BodyLiveView;
import org.neatshell.gneat.client.view.live.html.DivLiveView;
import org.neatshell.gneat.client.view.live.html.FormLiveView;
import org.neatshell.gneat.client.view.live.html.HeadLiveView;
import org.neatshell.gneat.client.view.live.html.HtmlLiveView;
import org.neatshell.gneat.client.view.live.html.IFrameLiveView;
import org.neatshell.gneat.client.view.live.html.ImgLiveView;
import org.neatshell.gneat.client.view.live.html.SpanLiveView;
import org.neatshell.gneat.client.view.live.html.TableLiveView;
import org.neatshell.gneat.client.view.live.html.form.FieldSetLiveView;
import org.neatshell.gneat.client.view.live.html.form.LabelLiveView;
import org.neatshell.gneat.client.view.live.html.form.LegendLiveView;
import org.neatshell.gneat.client.view.live.html.form.SelectLiveView;
import org.neatshell.gneat.client.view.live.html.form.TextareaLiveView;
import org.neatshell.gneat.client.view.live.html.form.button.PushButtonLiveView;
import org.neatshell.gneat.client.view.live.html.form.button.ResetButtonLiveView;
import org.neatshell.gneat.client.view.live.html.form.button.SubmitButtonLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputButtonLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputCheckboxLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputFileLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputHiddenLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputImageLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputPasswordLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputRadioLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputResetLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputSubmitLiveView;
import org.neatshell.gneat.client.view.live.html.form.input.InputTextLiveView;
import org.neatshell.gneat.client.view.live.html.form.select.OptgroupLiveView;
import org.neatshell.gneat.client.view.live.html.form.select.OptionLiveView;
import org.neatshell.gneat.client.view.live.html.list.LiLiveView;
import org.neatshell.gneat.client.view.live.html.list.UlLiveView;
import org.neatshell.gneat.client.view.live.html.table.CaptionLiveView;
import org.neatshell.gneat.client.view.live.html.table.ColLiveView;
import org.neatshell.gneat.client.view.live.html.table.ColgroupLiveView;
import org.neatshell.gneat.client.view.live.html.table.TbodyLiveView;
import org.neatshell.gneat.client.view.live.html.table.TdLiveView;
import org.neatshell.gneat.client.view.live.html.table.TfootLiveView;
import org.neatshell.gneat.client.view.live.html.table.ThLiveView;
import org.neatshell.gneat.client.view.live.html.table.TheadLiveView;
import org.neatshell.gneat.client.view.live.html.table.TrLiveView;

import com.google.gwt.inject.client.AbstractGinModule;

public class HtmlLiveClientModule extends AbstractGinModule {
	protected void configure() {
		bind(HtmlPresenter.IView.class).to(HtmlLiveView.class);
		bind(HeadPresenter.IView.class).to(HeadLiveView.class);		
		bind(BodyPresenter.IView.class).to(BodyLiveView.class);

		bind(RootHtmlPresenter.IView.class).to(RootHtmlLiveView.class);
		bind(RootHeadPresenter.IView.class).to(RootHeadLiveView.class);		
		bind(RootBodyPresenter.IView.class).to(RootBodyLiveView.class);
		
		//html4
		bind(APresenter.IView.class).to(ALiveView.class);
		bind(DivPresenter.IView.class).to(DivLiveView.class);
		bind(FormPresenter.IView.class).to(FormLiveView.class);
		bind(IFramePresenter.IView.class).to(IFrameLiveView.class);
		bind(ImgPresenter.IView.class).to(ImgLiveView.class);
		bind(SpanPresenter.IView.class).to(SpanLiveView.class);
		bind(TablePresenter.IView.class).to(TableLiveView.class);
		
		//html4.form
		bind(FieldSetPresenter.IView.class).to(FieldSetLiveView.class);
		bind(LabelPresenter.IView.class).to(LabelLiveView.class);
		bind(LegendPresenter.IView.class).to(LegendLiveView.class);
		bind(SelectPresenter.IView.class).to(SelectLiveView.class);
		bind(TextareaPresenter.IView.class).to(TextareaLiveView.class);

		//html4.form.button	
		bind(PushButtonPresenter.IView.class).to(PushButtonLiveView.class);
		bind(ResetButtonPresenter.IView.class).to(ResetButtonLiveView.class);
		bind(SubmitButtonPresenter.IView.class).to(SubmitButtonLiveView.class);
	
		//html4.form.input		
		bind(InputButtonPresenter.IView.class).to(InputButtonLiveView.class);
		bind(InputCheckboxPresenter.IView.class).to(InputCheckboxLiveView.class);
		bind(InputFilePresenter.IView.class).to(InputFileLiveView.class);
		bind(InputHiddenPresenter.IView.class).to(InputHiddenLiveView.class);
		bind(InputImagePresenter.IView.class).to(InputImageLiveView.class);
		bind(InputPasswordPresenter.IView.class).to(InputPasswordLiveView.class);
		bind(InputRadioPresenter.IView.class).to(InputRadioLiveView.class);
		bind(InputResetPresenter.IView.class).to(InputResetLiveView.class);
		bind(InputSubmitPresenter.IView.class).to(InputSubmitLiveView.class);
		bind(InputTextPresenter.IView.class).to(InputTextLiveView.class);

		//html4.form.select
		bind(OptgroupPresenter.IView.class).to(OptgroupLiveView.class);
		bind(OptionPresenter.IView.class).to(OptionLiveView.class);

		//html4.list
		bind(LiPresenter.IView.class).to(LiLiveView.class);
		bind(UlPresenter.IView.class).to(UlLiveView.class);
		
		//html4.table
		bind(CaptionPresenter.IView.class).to(CaptionLiveView.class);
		bind(ColPresenter.IView.class).to(ColLiveView.class);
		bind(ColgroupPresenter.IView.class).to(ColgroupLiveView.class);
		bind(TbodyPresenter.IView.class).to(TbodyLiveView.class);
		bind(TfootPresenter.IView.class).to(TfootLiveView.class);
		bind(TheadPresenter.IView.class).to(TheadLiveView.class);
		bind(TdPresenter.IView.class).to(TdLiveView.class);
		bind(ThPresenter.IView.class).to(ThLiveView.class);
		bind(TrPresenter.IView.class).to(TrLiveView.class);
	}
}